package com.yunxi.otd.service;

import com.github.pagehelper.PageInfo;
import com.yunxi.core.web.ApiResult;
import com.yunxi.core.web.LoginInfo;
import com.yunxi.otd.pojo.OtdPlanChangeApplyAddVO;
import com.yunxi.otd.pojo.OtdPlanChangeApplyEditVO;
import com.yunxi.otd.pojo.OtdPlanChangeApplyQueryVO;
import com.yunxi.otd.pojo.OtdPlanChangeApplyVO;
import com.yunxi.otd.pojo.VehicleCanChangePlanQueryVO;
import com.yunxi.otd.pojo.VehicleCanChangePlanVO;
import java.util.List;

/**
 * <p>
 * 生产计划变更申请 服务类
 * </p>
 *
 * @author XUQI
 * @since 2019-05-25
 */
public interface OtdChangeApplyDubboService {

    PageInfo findChangePlan(VehicleCanChangePlanQueryVO queryVO, Integer pageNum, Integer pageSize);

    PageInfo pageByVo(OtdPlanChangeApplyQueryVO queryVO, Integer pageNum, Integer pageSize);

    ApiResult addApply(OtdPlanChangeApplyAddVO addVO);

    ApiResult removeByIds(List<String> ids);

    ApiResult modifyApply(OtdPlanChangeApplyEditVO editVO);

    ApiResult releaseApply(String applyId, LoginInfo info);

    ApiResult auditApply(String applyId, LoginInfo info);

    ApiResult rejectApply(OtdPlanChangeApplyVO changeApplyVO, LoginInfo info);

    VehicleCanChangePlanVO findPlanByPlanNo(String planNo);

    OtdPlanChangeApplyVO load(String applyId);

    /**
     * 导出
     * @param queryVO 查询条件VO
     * @return ApiResult
     */
    ApiResult export(OtdPlanChangeApplyQueryVO queryVO);
}
